//package leetcode;
//
//import java.util.HashSet;
//import java.util.PriorityQueue;
//import java.util.Set;
//
//class Solution {
//    public int nthUglyNumber(int n) {
//        int[] factors = {2, 3, 5};
//        PriorityQueue<Long> heap = new PriorityQueue<Long>();
//        Set<Long> seen = new HashSet<Long>();
//
//        int ugly = 0;
//        heap.offer(1L);
//        seen.add(1L);
//
//        for (int i = 0; i < n; i++) {
//            long cur = heap.poll();
//            ugly = (int) cur;
//            for (int factor : factors) {
//                long next = cur * factor;
//                if (seen.add(next)) {
//                    heap.offer(next);
//                }
//            }
//        }
//        return ugly;
//    }
//}
//
//public class Test1S {
//}
